﻿Imports System.Net.Mail
Imports System.Configuration

Partial Public Class Wfrm_Recuperar_Clave
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then

            ViewState("prox_hora") = Session("prox_hora")
            ViewState("centro_medico") = Session("centro_medico")
            ViewState("profesional") = Session("profesional")

            ViewState("ptd_rut") = Session("ptd_rut")
            ViewState("agp_correl") = Session("agp_correl")
            ViewState("age_correl") = Session("age_correl")
            ViewState("fecha") = Session("fecha")
            ViewState("hora") = Session("hora")
            ViewState("especialidad_texto") = Session("especialidad_texto")
            ViewState("especialidad_codigo") = Session("especialidad_codigo")
            txt_rut.Text = Session("rut")
            txt_dv.Text = Session("dv")
            txt_rut.UpdateAfterCallBack = True
            txt_dv.UpdateAfterCallBack = True
        End If
    End Sub

    Protected Sub Img_Ir_Registro_Usuario_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Img_Ir_Registro_Usuario.Click
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "SP_AME_Get_Clave_Usuario"
        rp.AddParametro(txt_rut.Text)
        rp.AddParametro(txt_dv.Text)
        exec.ExecuteDataTable(rp)
        If Not rp.Errores Then
            If rp.TieneDatos Then
                SendMail(rp, rp.DtTable.Rows(0).Item(0), rp.DtTable.Rows(0).Item(1))
            End If        
        End If

        If rp.Errores Then
            'mostrar mensaje de error
            pnl_mensaje.Visible = True
            pnl_mensaje.UpdateAfterCallBack = True
            Me.lbl_mensaje.Text = "Ocurrió un error al enviar sus datos"
        Else
            If rp.TieneDatos Then
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                Me.lbl_mensaje.Text = "La clave ha sido enviada a su cuenta de email"
            Else
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                Me.lbl_mensaje.Text = "Usuario no encontrado"
            End If
            'su clave ha sido enviada el correo electronico
        End If
    End Sub

    Sub SendMail(ByRef rp As DotNetResponse.SQLPersistence, ByVal clave As String, ByVal destinatario As String)
        Try
            Dim Mail As MailMessage
            Dim SmtpServer As New SmtpClient()
            SmtpServer.Credentials = New Net.NetworkCredential(ConfigurationManager.AppSettings("usuario_envio_clave_mail"), ConfigurationManager.AppSettings("clave_envio_clave_email")) 'WebConfig
            'SmtpServer.Port = 25
            SmtpServer.Host = ConfigurationManager.AppSettings("servidor_envio_clave_mail")
            'SmtpServer.EnableSsl = True
            Mail = New MailMessage()
            Try
                Mail.From = New MailAddress(ConfigurationManager.AppSettings("usuario_envio_clave_mail"), ConfigurationManager.AppSettings("usuario_envio_clave_mail"), System.Text.Encoding.UTF8) 'WebConfig     
                Mail.To.Add(destinatario)
                Mail.Subject = ConfigurationManager.AppSettings("body_envio_clave_mail")
                Mail.Body = ConfigurationManager.AppSettings("body_envio_clave_mail") & clave
                SmtpServer.Send(Mail)
            Catch ex As Exception
                rp.Errores = True
                rp.MensajeError = ex.Message
            End Try

        Catch ex As Exception
            rp.Errores = True
            rp.MensajeError = ex.Message
        End Try
    End Sub


    Protected Sub Img_Ir_Volver_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Img_Ir_Volver.Click
        Session("prox_hora") = ViewState("prox_hora")
        Session("centro_medico") = ViewState("centro_medico")
        Session("profesional") = ViewState("profesional")
        Session("ptd_rut") = ViewState("ptd_rut")
        Session("agp_correl") = ViewState("agp_correl")
        Session("age_correl") = ViewState("age_correl")
        Session("fecha") = ViewState("fecha")
        Session("hora") = ViewState("hora")
        Session("especialidad_texto") = ViewState("especialidad_texto")
        Session("especialidad_codigo") = ViewState("especialidad_codigo")
        Response.Redirect("Wfrm_Paso4.aspx", True)
    End Sub
End Class